Method and system for remotely and wirelessly controlling electric window blinds and electric window shades

ABSTRACT

Remote control for actuating an electric window shade or an electric window blind or an electric window covering, and method and system of using same. A base unit includes: a wireless receiver, to wirelessly receive from an electronic device an incoming wireless signal indicating a command to actuate an electric window covering; a wireless signal constructor, to dynamically construct an outgoing wireless signal which comprises a rolling code; and a wireless transmitter, to transmit the outgoing wireless signal to a wireless receiver of a motor unit that is operably associated with the electric window covering. A wireless signal constructor dynamically constructs the outgoing wireless signal without having access to a secret seed value that is accessible to the motor unit. A local storage unit stores a data-set of rolling codes that are associated with the motor unit; and the outgoing wireless signal is dynamically constructed based on a next-available rolling code obtained from the local storage unit of the base unit.

CROSS-REFERENCE TO RELATED APPLICATIONS

This patent application is a Continuation-in-Part (CIP) of U.S. Ser. No.17/109,184, filed on Dec. 2, 2020, which is hereby incorporated byreference in its entirety; which is a Continuation of U.S. Ser. No.16/894,904, filed on Jun. 8, 2020, now U.S. Pat. No. 10,872,481 (issuedon Dec. 22, 2020), which is hereby incorporated by reference in itsentirety; which is a Continuation of U.S. Ser. No. 16/720,134, filed onDec. 19, 2019, now U.S. Pat. No. 10,685,517 (issued on Jun. 16, 2020),which is hereby incorporated by reference in its entirety; which is aContinuation of U.S. Ser. No. 16/001,958, filed on Jun. 7, 2018, nowU.S. Pat. No. 10,553,057 (issued on Feb. 4, 2020), which is herebyincorporated by reference in its entirety; which claims benefit andpriority from U.S. 62/517,919, filed on Jun. 11, 2017, which is herebyincorporated by reference in its entirety.

FIELD

Some embodiments relate to the field of electronic devices.

BACKGROUND

Millions of people worldwide utilize electronic devices for variouspurposes on a daily basis. For example, people utilize a laptopcomputer, a desktop computer, a smartphone, a tablet, and otherelectronic devices, in order to send and receive electronic mail(e-mail), to browse the Internet, to play games, to consume audio/videoand digital content, to engage in Instant Messaging (IM) and videoconferences, to perform online banking transactions and online shopping,and to do various other tasks.

SUMMARY

The present invention comprises devices, systems, and methods forcontrolling, actuating, moving, opening and/or closing of garage doors,gates, fences, and/or other barriers.

For example, a base unit may include: (i) a wireless receiver, towirelessly receive from an electronic device an incoming wireless signalindicating a command to actuate a garage door; (ii) a wireless signalconstructor, to dynamically construct an outgoing wireless signal whichcomprises a rolling code; and (iii) a wireless transmitter, to transmitthe outgoing wireless signal to a wireless receiver of a motor unit thatis operably associated with the garage door. The wireless signalconstructor dynamically constructs the outgoing wireless signal withouthaving access to a secret seed value that is accessible to the motorunit. A local storage unit stores a data-set of rolling codes that areassociated with the motor unit; and the outgoing wireless signal isdynamically constructed based on a next-available rolling code obtainedfrom the local storage unit of the base unit. The system allows anend-user to indirectly control the garage door (or other fence or movingbarrier) via the user's smartphone or tablet or similar electronicdevice, which sends wireless commands to the base unit, directly orindirectly through an intermediary device.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic illustration of a system, in accordance with somedemonstrative embodiments of the present invention.

FIG. 2 is a schematic illustration of another system, in accordance withsome demonstrative embodiments of the present invention.

DETAILED DESCRIPTION OF SOME DEMONSTRATIVE EMBODIMENTS

The term “garage door” as used herein may comprise, for example, othersuitable types of barriers, blockade members, movable gate, movabledoor, movable fence, a garage door able to open upwardly and able toclose downwardly, a garage door able to swing or swivel or rotate onaxis, a garage door able to be pulled by chains or belts, a movablebarricade, or other types of closing/opening members or mechanisms.Similarly, the term “garage door system” may comprise systems thatinclude such other types of barriers.

Reference is made to FIG. 1 , which is a schematic illustration of agarage door system 100, in accordance with some demonstrativeembodiments of the present invention. Garage door system 100 maycomprise, for example: a motor unit or an operator unit, denoted asmotor/operator unit 110, typically affixed to (or mounted under) theceiling of a garage; operable via belts and/or chains 102 to pull or topush or to move a garage door 103 (or other movable barrier). Themotor/operator unit 110 comprises a wireless Radio Frequency (RF)receiver 111, and optionally a wireless RF antenna 112, to receive froma wireless RF transmitter 131 of a proprietary or “original” wirelessRemote Control (RC) unit 130, an RF signal carrying a payload thatindicates a command to activate or actuate or trigger the motor/operator110, such that the garage door 103 would close if it is currently open,or such that the garage door 103 would open if it is currently closed,or to toggle the state of the garage door 103 between open and close orvice versa, or activate any other function of the garage door 103 or thegarage door system 100 (e.g., turn on/turn off an illumination unit 112of the motor/operator unit 110 of the garage door system 100).

In some embodiments, the original RC unit 130 on the one hand, and thewireless RF receiver 111 of the motor/operator unit 110 on the otherhand, may utilize a rolling code mechanism or a hopping code mechanism;such that each button-press of the original RC unit 130, causes theoriginal RC unit 130 to generate and to transmit a new code that isdifferent from the most-recently-used code. Each new code is generatedbased on a Secret Seed Value 114 (or a seed word, or multiple seedvalues, or multiple seed words), optionally using a particularcryptographic function performed by a cryptographic unit; such that, forexample, both the motor/operator unit 110 and the original RC unit storethe same Secret Seed Value 114, and have cryptographic units (115, 135)that utilize the same cryptographic function (e.g., a deterministicfunction) on that same secret seed value 114 in order to generaterolling code(s).

The unique Secret Seed Value 114 is known only to the original RC unit130 and to the corresponding motor/operator unit 110, due to a one-timePairing Process (or device serialization process; or systemserialization process) that is performed during a new installation of agarage door system. In the pairing process, the user pushes a physicalbutton 116 on the motor/operator unit 110; then, the user pushes a“transmit’ button of the original RC unit 130, which causes the wirelessRF transmitter 131 of the original RC unit 130 to transmit a wireless RFsignal that is received by the wireless RF receiver 111 of themotor/operator unit 110; which in turn utilizes that incoming wirelessRF signal to pair with the particular original RC unit 130 that waspressed, such that these two particular units (the motor/operator unit110, and the original RC unit 130) are paired with each other, and suchthat the original RC unit 130 will not trigger opening of a garage doorof a neighbor, and such that the wireless RF receiver 111 of themotor/operator unit 110 will not open the garage door 103 based on awireless signal received from another RC unit (e.g., a neighbor's RCunit); and such that the motor/operator unit 110 will respond towireless RF signals that are transmitted by this particular original RCunit 130 that was paired with this particular motor/operator unit 110.

In accordance with the present invention, system 100 further comprisesan end-user device 150, and a base unit 170. The end-user device 150 maybe a portable electronic device, a smartphone or tablet or smart-watch(or other device, e.g., a smart RC unit, a smart television RC unit, aportable gaming device, a portable “smart home” unit or RC unit, or thelike), and is configured to be in wireless communication (directly, orindirectly via an intermediate device or router or relay unit) with thebase unit 170 that is typically connected to a power outlet in a house(e.g., attached to the garage or near the garage) or in a garage. Thebase unit 170 comprises a memory unit 171, a storage unit 172, aprocessor 173, a power source (e.g., a connection to a wall-based powersource, and/or a battery), and a wireless transceiver 175.

The end-user device 150 may communicate with the base unit 170,directly, e.g., via a local network or a WLAN or an ad hoc wirelessnetwork, or via a direct local wireless communication link; and/orindirectly, e.g., via a remote server, via the Internet, via TCP/IPcommunications, via a cloud-based system, or the like; and/or via anintermediary service or an optional intermediary device 195, e.g., viaan Amazon® Alexa® or Amazon® Echo® device or other home automationdevice or smart-home hub unit which is able to capture spoken audio,upload it to a remote cloud computing server, which then converts thespeech to text and processes the text and outputs a digital indicationof a user command or a user query.

The base unit 170 may operate to duplicate the functionality of theoriginal RC unit 130 of the garage door system 100, without necessarilyknowing (or relying on) the Secret Seed Value 114 that is known only tothe motor/operator unit 110 and the original RC unit 130; and/or withoutnecessarily knowing (or relying on) the particular cryptographicfunction or deterministic function that is utilized (e.g., by amicrochip or controller in the original RC unit 130 and/or in themotor/operator unit 110) to dynamically generate rolling codes.

In some embodiments, for example, a remote server 180 of a remotelaboratory may perform a code-gathering process, in which an original RCunit of a garage door system is pressed or is actuated a large number oftimes via an automated process; for example, a robot or a robotic armpresses or “clicks” on the button of the original RC unit 130, forexample 100,000 times or one million times, at short time intervals(e.g., every 0.1 seconds). For example, one million clicks on the buttonof the original RC unit 130, at time intervals of 0.1 seconds, wouldtake approximately 100,000 seconds, which is approximately 1,666minutes, or approximately 28 hours.

Each one of those one million clicks on the button of the original RCunit 130, causes the original RC unit 130 to generate and to transmit awireless signal that comprises a new, different, hopping code. Adedicated RF listener/receiver unit 181, which is not part of a garagedoor system, listens to and captures and records those one millionwireless signals generated at the remote laboratory. For example, eachsuch incoming RF wireless signal is demodulated via a demodulator 182,and its payload is stored in a storage unit 183 or database 184, inexactly the same order as captured, one hopping code after another. Theresult of such 28-hour session of code-gathering process is a database184 comprising one million code-words or hopping-codes or rolling-codes,that were generated by a particular original RC unit 130 of a garagedoor system. Such database 184 is stored at the remote server 180 inthat laboratory, or in a “cloud computing” database or server orrepository.

Upon a new installation or activation of the base unit 170, the baseunit 170 wirelessly contacts the remote server 180 of the laboratory.The base unit 170 asks the user (e.g., the owner of the garage), via theend-user device 150 (which communicates wirelessly with the base unit170), which model or type of garage door system the user has; forexample, is it a “purple button” garage door system, or a “red button”garage door system, or a “yellow button” garage door system, or a“Vendor X, Model Y” garage door system, or the like. The user selects orindicates the particular type or model, via his end-user device 150.

Alternatively, the base unit 170 may learn the type of RC unit 130 (orthe type of garage door system 100) based on capturing and analysis ofone or more wireless transmissions from the original RC unit 130; orbased on capturing (e.g., receiving and recording) a wireless signal orwireless sample from that original RC unit 130 and analyzing it; suchas, receiving it via the wireless transceiver 175; demodulating it via ademodulator 176; analyzing it via a signal analyzer 177, identifying thepayload, header, preamble, and/or other signal components or messagecomponents, and comparing the analyzed or extracted data or meta-data topre-defined or pre-known components of signals of various types oforiginal RC units or of various types of garage door systems, which maybe pre-stored in a repository of known signals 178 (which may be part ofthe base unit 170; or, which may be stored remotely, such as at theremote server 180, and may be accessible to the base unit 170 via suchremote server 180).

The base unit 170 sends to the remote server 180, an indication of thetype or model of the particular garage door system being used in thisparticular garage; for example, a message indicating that it is a“yellow button” garage door system. The indication may be sent over anInternet based communication link, via HTTP, via HTTPS, via FTP, and/orvia TCP/IP communication; and/or via wired and/or wireless communicationlink(s) and/or network(s) that allow the base unit 170 to communicatewith the remote server 180.

The remote server 180 receives that indication; and utilizes apre-defined Known Signals Lookup Table 185 to determine or to obtain thefixed (non-hopping, non-rolling, non-changing) portion of the payloadthat is utilized by that type or model of garage door system. Fordemonstrative purposes, the Known Signals Lookup Table 185 may indicatethat all the garage door systems having a “yellow button”, utilize awireless communication signal that carries a payload having a fixedportion and then a rolling-code portion, wherein the fixed portion is,for example, a series of bits corresponding to the string“YellowButton”, and wherein the non-fixed portion is a rolling code thatspans 32 bits.

It is noted that the different “colors” or types of codes (or, ofsignals) may also be distinguished or differentiated (e.g., locally bythe base unit 170, and/or remotely by the remote server 180), based onanalysis of one or more signal characteristics and/or payloadcharacteristics, for example, data rate, modulation, preamble, encodingtype, frequency, number of bits, identification of pre-defined stringsof bits or sequences of bits within the payload, identification ofpre-defined sequence of bits that indicate a Header or a Prefix or aSuffix of particular type, and/or identification of an encryptionscheme; and thus, some embodiments of the present invention may operateeven if there does not exist an identifiable “fixed” portion to thecode.

In some embodiments, the system of the present invention may capture(receive, record, and store), and demodulate and analyze (e.g., in thebase unit 170, and/or in the remote server 180), a sample wirelesssignal from the original RC unit 130, in order to determine which RCunit 130 is in fact utilized or which garage door system 100 is actuallyoperational in this particular house or venue. In some embodiments,optionally, the system of the present invention may query the user asingle question, initiated by the remote server 180 and/or by the baseunit 170, and presented to the user via the end-user device 150; such as“what color is the button on your garage door motor unit”, and based onthe response (e.g., yellow, purple, red) that the user conveys throughthe end-user device 150, the system may determine the set of parametersto utilize (e.g., frequency range, frequency value, encoding type,encryption type, or the like), taking into account the pre-stored datain the Known Signals Lookup Table 185.

The remote server 180 sends a wireless message to the base unit 170,indicating to the base unit 170 what is (or, what should be) the fixedportion of the payload that is utilized by that particular garage doorsystem; such as, in the above example, indicating to the base unit 170that this particular garage door system utilizes a wireless signal, thatis transmitted at a particular frequency, and starts with a fixedcomponent that reads “YellowButton”, and then continues with a non-fixedcomponent (e.g., a hopping code) having a fixed length of (for example)32 bits.

Then, the remote server 180 sends to the base unit 170, a large set ofdata-items: for example, a set of 50,000 consecutive rolling-codes (orhopping-codes) that were recorded from the one-million-clicks that wereperformed in the laboratory using that type of original RC unit 130. Insome embodiments, the entire dataset is sent to the base unit 170, forexample, the entire data-set of one million rolling-codes. In otherembodiments, only a subset of the data is sent to the base unit 170, forexample, only 50,000 consecutive rolling-codes out of those one millionrolling-codes. In some embodiments, optionally, the entire data-set maybe sent to the base unit 170 in chunks or in portions; such as, 40,000consecutive rolling-codes per day (or per hour), over 25 days (or over25 hours).

In some embodiments, a first subset of rolling codes (e.g., the first50,000 consecutive rolling-codes) is sent by the remote server 180 toBase Unit A (e.g., owned by user Adam); whereas a second, different,subset of rolling codes (e.g., the next 50,000 consecutiverolling-codes) is sent by the remote server 180 to Base Unit B (e.g.,owned by user Bob). Furthermore, the remote server 180 may use alocation-based algorithm when assigning or allocating or sending ordistributing blocks or chunks of consecutive rolling-codes, in order tominimize the probability of a collision between hopping codes providedto neighboring base units; optionally utilizing location-based data orgeo-spatial data, obtained from the base unit 170 and/or from theend-user device 150 (e.g., smartphone or tablet), as one of them or bothof them may optionally comprise a Global Positioning System (GPS) unitor other location-identifying unit or module (e.g., based on cellulartriangulation; based on Wi-Fi network identification; based on ServiceSet Identifier (SSID) of a wireless network, or the like).

The base unit 170 receives the large subset of rolling-codes, and storesit within its local storage unit 172 or memory unit 171, as a LargeSubset of Consecutive Rolling-Codes 179.

Later, the user utilizes his end-user device 150 (e.g., smartphone,tablet, smart-watch, or the like) to command the end-user device 150 totransmit a wireless command to actuate the motor/operator unit 110 ofhis garage door. The wireless command is transmitted from the end-userdevice 150, directly or indirectly, to the base unit 170; for example,over a local Wi-Fi communication link, IEEE 802.11 communication link,Bluetooth communication, Zigbee communication, over a TCP/IPcommunication link; or via an intermediary device 195 such as Amazon®Alexa® or other home automation device or other smart home hub unit or alocal wireless hub or wireless router or wireless Access Point (AP) orwireless router, or the like.

The base unit 170 accesses the locally-stored Large Subset of RollingCodes 179, and utilizes the first rolling-code on that list, to generateand to transmit an outgoing wireless RF signal that carries a payload,wherein the payload comprises: (i) the fixed (non-hopping, non-changing)portion that was received one time from the remote server 180, and (ii)the first locally-stored rolling-code from the dataset of locally-storedrolling codes. For example, a Wireless Signal Constructor Module 191 ofthe base unit 170 may dynamically construct such wireless signal forwireless transmission, from the already-received fixed portion and fromthe next-available rolling code.

The outgoing wireless RF signal is transmitted by the wirelesstransceiver 175 of the base unit 170. The wireless RF signal is receivedby the wireless RF receiver of the motor/operator unit 110 of the garagedoor system 100, and triggers the motor/operator unit 110 to actuate(e.g., to toggle the position of) the garage door 103. Both themotor/operator unit 110, and the base unit 170, may mark the particularrolling-code that was transmitted, as an “already utilized”rolling-code. For example, the base unit 170 may utilize a Rolling-CodePointer 192 to point to the most-recently-used rolling-code in thedataset of consecutive rolling codes; or, to point to the next-availablerolling-code in the dataset of consecutive rolling codes; or may utilizea Rolling-Code Counter 193 that is incremented upon each suchrolling-code utilization. The counter or pointer, utilized by the baseunit 170, is incremented or updated by a Counter/Pointer Updated Module194 of the base unit 170, upon utilization of a rolling code. Similarly,a similar pointer or indicator or counter may be used by themotor/operator unit 110 of that garage door system 110.

In some embodiments, a one-time pairing process may be performed via aPairing Module 195 of the base unit 170, to enable pairing between (i)the particular base unit 170, and (ii) the particular motor/operatorunit 110; similarly to the manner in which the motor/operator unit 110may be paired with a new original RC unit 130. For example, the physicalbutton 116 is pressed in the motor/operator unit 110; and the base unit170 is commanded (e.g., by the user, through the end-user device 150; orby pushing an optional physical button 197 in the base unit 170 itself)to wirelessly transmit a wireless signal comprising the first-available(or the next available) rolling-rolling code that it stores locally inthe base unit 170. The motor/operator unit 110 analyzes the receivedwireless signal and its payload, in order to pair with the particularbase unit 170 being used, such that both that base unit 170 and thatmotor/operator unit 110 will be synchronized with each other and willutilize the same series of consecutive rolling-codes; and/or such thatthe motor/operator unit 110 “thinks” or “believes” that the base unit170 is a proprietary or original RC unit; and/or such that themotor/operator unit 110 would become “locked” to respond to the baseunit 170 that was paired with it, and not to a neighboring base unit ofa neighboring house that was not paired with it.

In some embodiments, upon receiving a user command (e.g., conveyedwirelessly via the end-user device 150) to actuate (e.g., to toggle) thegarage door 103, the base unit 170 may construct and wirelessly transmitthe appropriate wireless RF signal, with the same rolling-code,optionally transmitted by the base unit 170 multiple times (e.g., inseries, or in parallel) but at different frequencies out of a particularset of pre-defined frequencies; for example, 310 MHz, 315 MHz, 344 MHz,and 390 MHz; in order to ensure reception of the wireless RF signal bythe wireless RF receiver 111 of the motor/operator unit 110, which mayutilize one of several, common, pre-defined frequencies. Such multipletransmissions of the same signal, over several “candidate frequencies”that are typically utilized by garage door systems, may obviate the needto particularly determine the exact frequency that is actually utilizedby the particular motor/operator unit 110 in that particular house orvenue.

In some embodiments, the base unit 170 may eventually run out ofpre-recorded rolling codes, once it is utilized 50,000 times in theabove example. For example, the user may open and close its garage door10 times per day, every day; and the data-set of 50,000 rolling codesthat was stored in the Large Subset of Consecutive Rolling-Codes 179would suffice for 5,000 days, which is over 13 years of such dailyusage. In such scenario, or if the base unit 170 detects that only Nrolling-codes remain not-yet-used (e.g., N being equal to 500 or 700 orother suitable pre-defined threshold value), the base unit 170 mayautonomously contact the remote server 180 of the laboratory and mayrequest a new or additional subset of rolling-codes; and may download orobtain or wirelessly receive from the remote server 180 a new,different, subset of 50,000 other, consecutive, rolling-codes that wouldreplace or would augment (or be appended to) the previous,already-utilized (or, about to be already-utilized) subset ofrolling-codes. This mechanism may increase the security of the databaseof rolling codes, as no user (or, no single base unit 170) has access tothe full database of rolling codes; and request limiting may be used toprevent abuse, such as illegitimate attempts to read out the entiredatabase through successive requests. In some embodiments, the data-setof rolling codes may be distributed to users in smaller chunks orsmaller portions; for example, each chunk or portion having 1,000 or7,000 rolling-codes, rather than 50,000 rolling-codes per chunk in theprevious example.

In some embodiments, optionally, a new pairing process may be performednow between the motor/operator unit 110, and the base unit 170 that hasjust downloaded or received a new subset of consecutive rolling codes;and the end-user device 150 alerts the user to manually perform the newpairing process. In other embodiments, once the new batch or dataset ofconsecutive rolling-codes is delivered to the base unit 170, nore-pairing is needed; since the second batch of 50,000 consecutivelyrecorded rolling codes, may be a direct consecutive continuation insequence after the first (e.g., the previous) batch of 50,000 rollingcodes that are about to be used up.

In some embodiments, the set of 50,000 rolling-codes that is storedlocally within the base unit 170, may optionally be encrypted by acryptographic unit 198 of the base unit 170 with a unique encryption keyor cryptographic key 196 (e.g., hard-coded into the base unit 170, orsecurely stored in a secure storage thereof); such that an intruder orattacker that may somehow copy the local data from within the base unit170, may only be able to copy encrypted data that is useless ormeaningless without actual knowledge of the cryptographic key 196;thereby protecting the rolling-codes themselves from being copied orutilized by an attacker or by a competitor. In some embodiments, the setof 50,000 rolling-codes, that are transmitted from the remote server 180to the base unit 170, may be transmitted or transported over a securelink or an encrypted channel or a secure communication channel (e.g.,over HTTPS, or other secure communication link or secure communicationchannel), and/or may be transmitted in an encrypted format; in order toprevent an eavesdropper from capturing (or copying, or altering) thesubset of rolling-codes as plaintext in transit. The base unit 170 mayoptionally use a Trusted Computing Module or a Trusted ExecutionEnvironment (TEE) or a Secure Execution Environment (SEE), or a suitableMCU, having a decryption unit or its cryptographic unit 198, to decryptthe rolling codes (or, to decrypt one single rolling-code immediatelyprior to its utilization or immediately as it is requested to beutilized), thereby further compartmentalizing the data and increasingsecurity.

In some embodiments, from a security point-of-view, the communicationbetween the base unit 170 and the wireless RF receiver 111 of themotor/operator unit 110, is not less secure from the RF communicationbetween the original RC unit 130 and the motor/operator unit 110; or, itutilizes one or more mechanisms that meet or exceed the securityconsiderations that govern the RF communication between the original RCunit 130 and the motor/operator unit 110.

In some embodiments, the motor/operator unit 110 may be triggered toactuate the garage door 103, if the incoming wireless RF signal carriesa payload that comprises the rolling-code that is thenext-to-be-utilized rolling code according to the motor/operator, orthat is one of the next 256 or the next 512 (or the next N)rolling-codes that are next-to-be-utilized; for example, in order toenable the motor/operator unit 110 to be actuated, if an original RCunit 130 and/or the end-user device 150 were clicked while not withinthe reception range of the motor/operator unit 110. In some embodiments,the motor/operator 110 may respond to wireless RF signals from the baseunit 170 and/or from the original RC unit 130 which may still functionas before. In other embodiments, the original RC unit 130 may even bediscarded and not utilized any more, and may be entirely replaced by thebase unit 170 which in turn is in communication with the end-user device150.

In some embodiments, a single base unit 170 may be associated with, andmay receive wireless signals or commands from, two or more end-userdevices 150; for example, a single garage door 103, may be controlledvia a single motor/operator unit 110, which receives wireless RF signalsfrom a single base unit 170, which in turn may be associated with: thesmartphone of user Adam, and/or the smartphone of his wife Barbara,and/or the tablet of their son Charles, and/or the smart-watch of theirdaughter Diana. In some embodiments, each one of such end-user device(s)need not necessarily be in proximity to the base unit 170, or in (ornear) the garage or the house; but rather, such end-user device(s) 150may optionally communicate with the base unit via a TCP/IP communicationlink or via the Internet, even if they are located remotely or away; forexample, thereby enabling a user to open his garage door 103 while theuser is located at work, in order to allow a guest or a visitor to enterhis garage (e.g., to pick up an item from the garage; to drop off anitem in the garage; to pass into the house through the garage).

Optionally, the remote opening and/or closing of the garage door 103 bya non-attending user (who is far away from the house or the garage) maybe performed as part of a delivery system in which a courier delivers apackage (e.g., purchased merchandise from an online vendor) directlyinto the garage of a customer, who opens and closes the garage door 103remotely via his end-user device in response to a message (e.g., SMSmessage, email message, phone message) that indicates to the user thatthe courier is at the venue and is ready to drop-off the package intothe garage.

In some embodiments, the base unit 170 may optionally include one ormore physical buttons or other User Interface (UI) elements, such asPhysical UI Elements 199; or may have one or more on-screen GUIelements; and particularly, a UI element (e.g., a physical button, or anon-screen button) that allows a user to manually command the base unit170 to wirelessly command the motor/operator unit 110 to actuate thegarage door 103. This may allow a user, for example, to utilize the baseunit 170 for the main purpose that it provides, namely for remotelyopening or remotely closing the garage door, even if the user's end-userdevice 150 (e.g., his smartphone, tablet, or the like) is not nearby oris not available (e.g., user lost his smartphone; the tablet broke downor malfunctions; the smartphone ran out of battery power).

In accordance with some embodiments of the present invention, originalor proprietary rolling-codes based RC units operate by transmitting uponevery trigger a different secret code (rolling code) that is modulatedin an RF signal. The secret code (or, Secret Seed Value) is known onlyto the Receiver (e.g., the motor/operator unit 110) and the Transmitter(e.g., the original RC unit 130), and is shared when the two aremanufactured or when they are paired during a new system installation.The system of the present invention may demodulate the RF signal, andthen may control the motor/operator unit 110 using its same RF receiver111 without knowing the secret code or the secret Seed Value 114 or thecryptographic algorithm utilized for dynamically generating rollingcodes.

The Applicants have realized that many original RC units of garage doorsystems, belong to the same family of RC units. As a result, the systemof the present invention may identify such different families or typesof RC units in advance and may collect many wireless RF signals of eachfamily, which contains the rolling codes; thereby recording by a remoteserver 180 in a laboratory hundreds of thousands, or millions, of suchconsecutive RF signals per each family (or type, or model, or brand) ofRC unit.

The recording of such millions of consecutive rolling codes is performedin sequence at a dedicated laboratory or facility, away from the actualgarage door 103 that would later be controlled by the user via hisend-user device 150 and via his base unit 170. Once the base unit 170 isintroduced to (and paired with) the wireless RF receiver 111 of theparticular garage door system 100, the base unit 170 is accepted by themotor/operator unit 110 as if it was a new, valid, RC unit or as a new,valid, RF transmitter, and a fresh counting and following of consecutiverolling-codes begins and is performed on the receiver side (namely, atthe motor/operator unit 110). Since the recording of the rolling-codesis performed in sequence, the receiving side (the motor/operator unit110) starts to follow/count the rolling-codes based on the firstrolling-code that the base unit 170 started to utilize.

In some embodiments, optionally, the base unit 170 may be implemented asa single base unit 170 that is able to remotely control the garage door103 (via its motor/operator unit 110) as well as other appliances ordevices; for example, a ceiling fan, an air conditioner, an airconditioning unit, an HVAC unit, a smoke detector, an alarm system, orthe like. For example, the processor 173 of the base unit 170 mayexecute code, and/or the wireless transceiver 175 of the base unit maytransmit wireless signals, that may cause such other devices orappliances to turn on, turn off, modify their operational settings, orotherwise be controlled via a single base unit 170. Optionally, the baseunit 170 may store representations of a set of wireless signals thatcorrespond to a set of wireless commands that control each such device;for example, a set of commands to wirelessly control a ceiling fan,another set of commands to wirelessly control an air conditioner, or thelike. Optionally, the base unit 170 may store parameters and functionsthat enable it to dynamically generate or construct wireless commands,that control known device or even future devices, based on a “script”that indicates how to dynamically construct and transmit the wirelesscommand for such device(s), e.g., which frequency to use, whichmodulation to use, which fixed and/or non-fixed portion(s) to constructand include in the wireless signal or message, or the like; andoptionally, the base unit 170 may periodically receive updates from theremote server 180, with representations of new wireless commands (e.g.,for new devices or appliances, or for already-controlled devices orappliances), and/or with “scripts” that instruct the base unit 170 howto dynamically construct and transmit wireless commands to such devicesand appliances.

In some implementations, calculations, operations and/or determinationsmay be performed locally within a single device, or may be performed byor across multiple devices, or may be performed partially locally andpartially remotely (e.g., at a remote server) by optionally utilizing acommunication channel to exchange raw data and/or processed data and/orprocessing results.

Although portions of the discussion herein relate, for demonstrativepurposes, to wired links and/or wired communications, someimplementations are not limited in this regard, but rather, may utilizewired communication and/or wireless communication; may include one ormore wired and/or wireless links; may utilize one or more components ofwired communication and/or wireless communication; and/or may utilizeone or more methods or protocols or standards of wireless communication.

Some implementations may utilize a special-purpose machine or aspecific-purpose device that is not a generic computer, or may use anon-generic computer or a non-general computer or machine. Such systemor device may utilize or may comprise one or more components or units ormodules that are not part of a “generic computer” and that are not partof a “general purpose computer”, for example, cellular transceiver,cellular transmitter, cellular receiver, GPS unit, location-determiningunit, accelerometer(s), gyroscope(s), device-orientation detectors orsensors, device-positioning detectors or sensors, or the like.

Some implementations may utilize an automated method or automatedprocess, or a machine-implemented method or process, or as asemi-automated or partially-automated method or process, or as a set ofsteps or operations which may be executed or performed by a computer ormachine or system or other device.

Some implementations may utilize code or program code ormachine-readable instructions or machine-readable code, which may bestored on a non-transitory storage medium or non-transitory storagearticle (e.g., a CD-ROM, a DVD-ROM, a physical memory unit, a physicalstorage unit), such that the program or code or instructions, whenexecuted by a processor or a machine or a computer, cause such processoror machine or computer to perform a method or process as describedherein. Such code or instructions may be or may comprise, for example,one or more of: software, a software module, an application, a program,a subroutine, instructions, an instruction set, computing code, words,values, symbols, strings, variables, source code, compiled code,interpreted code, executable code, static code, dynamic code; including(but not limited to) code or instructions in high-level programminglanguage, low-level programming language, object-oriented programminglanguage, visual programming language, compiled programming language,interpreted programming language, C, C++, C#, Java, JavaScript, SQL,Ruby on Rails, Go, Cobol, Fortran, ActionScript, AJAX, XML, JSON, Lisp,Eiffel, Verilog, Hardware Description Language (HDL), Register-TransferLevel (RTL), BASIC, Visual BASIC, MATLAB, Pascal, HTML, HTML5, CSS,Perl, Python, PHP, machine language, machine code, assembly language, orthe like.

Discussions herein utilizing terms such as, for example, “processing”,“computing”, “calculating”, “determining”, “establishing”, “analyzing”,“checking”, “detecting”, “measuring”, or the like, may refer tooperation(s) and/or process(es) of a processor, a computer, a computingplatform, a computing system, or other electronic device or computingdevice, that may automatically and/or autonomously manipulate and/ortransform data represented as physical (e.g., electronic) quantitieswithin registers and/or accumulators and/or memory units and/or storageunits into other data or that may perform other suitable operations.

The terms “plurality” and “a plurality”, as used herein, include, forexample, “multiple” or “two or more”. For example, “a plurality ofitems” includes two or more items.

References to “one embodiment”, “an embodiment”, “demonstrativeembodiment”, “various embodiments”, “some embodiments”, and/or similarterms, may indicate that the embodiment(s) so described may optionallyinclude a particular feature, structure, or characteristic, but notevery embodiment necessarily includes the particular feature, structure,or characteristic. Furthermore, repeated use of the phrase “in oneembodiment” does not necessarily refer to the same embodiment, althoughit may. Similarly, repeated use of the phrase “in some embodiments” doesnot necessarily refer to the same set or group of embodiments, althoughit may.

As used herein, and unless otherwise specified, the utilization ofordinal adjectives such as “first”, “second”, “third”, “fourth”, and soforth, to describe an item or an object, merely indicates that differentinstances of such like items or objects are being referred to; and doesnot intend to imply as if the items or objects so described must be in aparticular given sequence, either temporally, spatially, in ranking, orin any other ordering manner.

Some implementations may be used in, or in conjunction with, variousdevices and systems, for example, a Personal Computer (PC), a desktopcomputer, a mobile computer, a laptop computer, a notebook computer, atablet computer, a server computer, a handheld computer, a handhelddevice, a Personal Digital Assistant (PDA) device, a handheld PDAdevice, a tablet, an on-board device, an off-board device, a hybriddevice, a vehicular device, a non-vehicular device, a mobile or portabledevice, a consumer device, a non-mobile or non-portable device, anappliance, a wireless communication station, a wireless communicationdevice, a wireless Access Point (AP), a wired or wireless router orgateway or switch or hub, a wired or wireless modem, a video device, anaudio device, an audio-video (A/V) device, a wired or wireless network,a wireless area network, a Wireless Video Area Network (WVAN), a LocalArea Network (LAN), a Wireless LAN (WLAN), a Personal Area Network(PAN), a Wireless PAN (WPAN), or the like.

Some implementations may be used in conjunction with one way and/ortwo-way radio communication systems, cellular radio-telephonecommunication systems, a mobile phone, a cellular telephone, a wirelesstelephone, a Personal Communication Systems (PCS) device, a PDA orhandheld device which incorporates wireless communication capabilities,a mobile or portable Global Positioning System (GPS) device, a devicewhich incorporates a GPS receiver or transceiver or chip, a device whichincorporates an RFID element or chip, a Multiple Input Multiple Output(MIMO) transceiver or device, a Single Input Multiple Output (SIMO)transceiver or device, a Multiple Input Single Output (MISO) transceiveror device, a device having one or more internal antennas and/or externalantennas, Digital Video Broadcast (DVB) devices or systems,multi-standard radio devices or systems, a wired or wireless handhelddevice, e.g., a Smartphone, a Wireless Application Protocol (WAP)device, or the like.

Some implementations may comprise, or may be implemented by using, an“app” or application which may be downloaded or obtained from an “appstore” or “applications store”, for free or for a fee, or which may bepre-installed on a computing device or electronic device, or which maybe otherwise transported to and/or installed on such computing device orelectronic device.

In some embodiments, an apparatus comprises: a wireless receiver, towirelessly receive from an electronic device an incoming wireless signalindicating a command to actuate a garage door; a wireless signalconstructor, to dynamically construct an outgoing wireless signal whichcomprises a rolling code; a wireless transmitter, to transmit saidoutgoing wireless signal to a wireless receiver of a motor unit that isoperably associated with said garage door.

In some embodiments, said wireless signal constructor is to dynamicallyconstruct said outgoing wireless signal without having access to asecret seed value that is accessible to said motor unit.

In some embodiments, the apparatus further comprises: a local storageunit to store a data-set of rolling codes that are associated with saidmotor unit; wherein said wireless signal constructor is to dynamicallyconstruct said outgoing wireless signal by including in said outgoingwireless signal a next-available rolling code obtained from said localstorage unit of the apparatus.

In some embodiments, the wireless receiver is to further receive, from aremote server, the data-set of rolling codes that are associated withsaid motor unit.

In some embodiments, the wireless receiver is to receive, from saidelectronic device, a wireless communication signal indicating auser-indication of a property of said motor unit; wherein the wirelesstransmitter is to wirelessly transmit, to a remote server, saiduser-indication of the property of said motor unit; wherein the wirelessreceiver is to receive, from said remote server, the data-set of rollingcodes that are associated with said motor unit.

In some embodiments, the wireless receiver is to further receive, from aremote server, the data-set of rolling codes that are associated withsaid motor unit; wherein the data-set of rolling codes, that is receivedfrom the remote server, is only a partial subset of an entire dataset ofrolling codes that can actuate said motor unit.

In some embodiments, the wireless receiver is to further receive, from aremote server, via a secure communication channel, an encrypted versionof the data-set of rolling codes that are associated with said motorunit; wherein the apparatus comprises a cryptographic unit todynamically decrypt only one rolling code of said data-set, uponreceiving a user command to actuate the garage door.

In some embodiments, the wireless receiver is to capture and record asample wireless signal that is transmitted by a proprietary remotecontrol unit that is associated with said motor unit; wherein theapparatus comprises: a demodulator to demodulate the sample wirelesssignal; a signal analyzer to analyze a demodulated version of saidsample wireless signal, and to determine a type of said motor unit;wherein the wireless transmitter is to wirelessly transmit, to a remoteserver, an indication of said type of said motor unit; wherein thewireless receiver is to receive, from said remote server, the data-setof rolling codes that are associated with said motor unit.

In some embodiments, the wireless receiver is to capture and record asample wireless signal that is transmitted by a proprietary remotecontrol unit that is associated with said motor unit; wherein thewireless transmitter is to upload to a remote server, at least a portionof a copy of said sample wireless signal, to enable said remote serverto demodulate and analyze said sample wireless signal and to identify atype of said motor unit; wherein the wireless receiver is to receive,from said remote server, the data-set of rolling codes that areassociated with said motor unit.

In some embodiments, the apparatus further comprises: a User Interface(UI) element to receive a direct manual input from a user; wherein saidwireless signal constructor and said wireless transmitter are alsotriggered to operate based on said direct manual input from the user.

In some embodiments, the apparatus further comprises: a pairing moduleto perform a wireless pairing process between said apparatus and saidmotor unit; wherein actuation of the pairing module triggers thewireless transmitter to transmit a wireless communication signal havinga rolling code, which enables the motor unit to pair with saidapparatus.

In some embodiments, the wireless receiver of the apparatus is towirelessly receive said incoming wireless signal directly from saidelectronic device via a local Wi-Fi communication network in which saidapparatus and said electronic device participate.

In some embodiments, the wireless receiver of the apparatus is towirelessly receive said incoming wireless signal directly from saidelectronic device via a local Wi-Fi router which is in direct Wi-Ficommunication with each one of said apparatus and said electronicdevice.

In some embodiments, the wireless receiver of the apparatus is towirelessly receive said incoming wireless signal indirectly from saidelectronic device via a home automation unit; wherein said incomingwireless signal is transmitted wirelessly from said electronic device tosaid home automation unit which in turn generates and sends a differentwireless signal to said base unit to trigger actuation of said garagedoor. In some embodiments, the wireless receiver of the apparatus is towirelessly receive said incoming wireless signal indirectly from saidelectronic device via a home automation unit and via a cloud computingsystem; wherein said incoming wireless signal is transmitted wirelesslyfrom said electronic device to said home automation unit, which in turnsends another, different, signal to said cloud computing system, whichin turn sends yet another, different, signal to said base unit totrigger actuation of said garage door.

In some embodiments, the wireless receiver of the apparatus is towirelessly receive said incoming wireless signal from said electronicdevice which is a smartphone or a tablet.

In some embodiments, a system comprises a base unit and a remote server.The base unit comprises: a wireless receiver, to wirelessly receive froman electronic device an incoming wireless signal indicating a command toactuate a garage door; a wireless signal constructor, to dynamicallyconstruct an outgoing wireless signal which comprises a rolling code; awireless transmitter, to transmit said outgoing wireless signal to awireless receiver of a motor unit that is operably associated with saidgarage door. The remote server comprises: a storage unit, to store adata-set of rolling codes that, when included in a wireless signal,cause said motor unit to actuate said garage door; a wirelesstransceiver to transmit to said base unit a partial subset of saiddata-set of rolling codes.

In some embodiments, the remoter server generates said data-set ofrolling codes by: (I) actuating a proprietary remote control unit ofsaid garage door, and (II) capturing a wireless signal transmitted bysaid proprietary remote control unit, and (III) extracting a rollingcode from said wireless signal; and (IV) repeating operations (I)through (III) at least 100 times (or, at least 500 times; or, at least1,000 times; or, at least N times, wherein N is a natural number).

In some embodiments, the wireless transceiver of the remote server isconfigured or adapted or programmed: (I) to transmit to said base unitlocated at a first venue, a first partial subset of said data-set ofrolling codes, and (II) to transmit to another base unit located at asecond venue, a second partial subset of said data-set of rolling codes;wherein the first partial subset comprises rolling codes that are notcomprised in the second partial subset; wherein the second partialsubset comprises rolling codes that are not comprised in the firstpartial subset.

In some embodiments, the base unit further comprises a local storageunit to store said partial subset of rolling codes; wherein the wirelesssignal constructor of the base unit is to dynamically construct saidoutgoing wireless signal by including in said outgoing wireless signal anext-available rolling code obtained from said local storage unit of thebase unit.

Some embodiments may similarly operate to enable remote control and/orwireless control and/or no-contact control of a window cover or a windowcovering, or an electric window cover or an electric window covering, orelectric shade or electric shades, or electric window shade or electricwindow shades, or electric window blind or electric window blinds,electric horizontal blinds, electric vertical blinds, electric Venetianor Venetian-type blinds, electric window curtain, or other suitablemechanism that enables a user to activate or deactivate a covering or acover of a window; and such window may be, for example, a home window, ahouse window, an office window, a store window, a shop window, avehicular window, a window of a vehicle or a vessel or an aircraft, awindow of a mobile home, or the like. The discussion above, with regardto cloning or duplicating or constructing a signal for controlling agarage door, applies similarly with regard to regard to cloning orduplicating or constructing a signal for controlling electric windowblinds or electric window shades or an electric window covering system.

Reference is made to FIG. 2 , which is a schematic illustration of awindow covering system 200, in accordance with some demonstrativeembodiments of the present invention. Window covering system 200 maycomprise, for example: a motor unit or an operator unit, denoted asmotor/operator unit 110, typically affixed to (or mounted under) aceiling or a wall; operable via belts and/or chains 102 to pull or topush or to move a window cover 203 (or a window covering unit; or othermovable or modifiable curtain or barrier or shade or blind).

The motor/operator unit 110 of system 200 may be actuated via anoriginal RC unit 130; yet the Base Unit 170 of the present invention maymonitor the RF signals of such original RC unit, may analyze theirstructure and/or format, and may construct and transmit aduplicate/clone/cloned/compatible wireless RF signal, which carries acurrent or a relevant Rolling Code or Hopping Code value which causesactuation of the motor/operator unit 110 of system 200.

Some embodiments include a method for remotely controlling a motor unitof an electric window covering (or electric window blinds, or electricwindow shades), the method comprising: at a wireless receiver,wirelessly receiving from an electronic device an incoming wirelesssignal indicating a command to actuate said electric window covering; atsaid wireless receiver, receiving, from a remote server, a partialdata-set of rolling codes that are associated with said motor unit ofsaid electric window covering; wherein the partial data-set of rollingcodes is only a partial subset of an entire dataset of rolling codesthat can actuate said motor unit of said electric window covering; at awireless signal constructor unit, dynamically constructing an outgoingwireless signal which comprises a rolling code from said partialdata-set; at a wireless transmitter, transmitting said outgoing wirelesssignal to a wireless receiver of said motor unit that is operablyassociated with said electric window covering.

In some embodiments, the receiving at said wireless receiver, from saidremote server, of said partial data-set of rolling codes, comprisesreceiving via a secure communication channel.

In some embodiments, said constructing utilizes one rolling code of saidpartial data-set of rolling codes, upon a user command to actuate themotor unit of the electric window covering.

In some embodiments, said constructing comprises dynamicallyconstructing said outgoing wireless signal without having access to asecret seed value that is accessible to said motor unit.

In some embodiments, the method further comprises: locally storing, in alocal storage unit, said partial data-set of rolling codes that areassociated with said motor unit.

In some embodiments, said constructing comprises: dynamicallyconstructing said outgoing wireless signal by including in said outgoingwireless signal a next-available rolling code obtained from a localstorage unit.

In some embodiments, said constructing and said transmitting aretriggered based on said a direct manual input received from the user.

In some embodiments, the method further comprises: at a pairing module,performing a wireless pairing process between (i) an apparatuscomprising said wireless transmitter, and (ii) said motor unit of saidelectric window covering; wherein actuation of the pairing moduletriggers transmission of a wireless communication signal having arolling code, which enables said motor unit to pair with said apparatus.

In some embodiments, wirelessly receiving at the wireless receiver saidincoming wireless signal from the electronic device comprises: at saidwireless receiver, wirelessly receiving said incoming wireless signaldirectly from said electronic device via a local Wi-Fi communicationnetwork in which said wireless receiver and said electronic deviceparticipate.

In some embodiments, wirelessly receiving at the wireless receiver saidincoming wireless signal from the electronic device comprises: at saidwireless receiver, wirelessly receiving said incoming wireless signaldirectly from said electronic device via a local Wi-Fi router which isin direct Wi-Fi communication with each one of said electronic deviceand said wireless receiver.

In some embodiments, wirelessly receiving at the wireless receiver saidincoming wireless signal from the electronic device comprises: at saidwireless receiver, wirelessly receiving said incoming wireless signalindirectly from said electronic device via a home automation unit;wherein said incoming wireless signal is transmitted wirelessly fromsaid electronic device to said home automation unit, which in turngenerates and sends a different wireless signal to said wirelessreceiver to trigger remote actuation of said motor unit of the electricwindow covering.

In some embodiments, wirelessly receiving at the wireless receiver saidincoming wireless signal from the electronic device comprises: at saidwireless receiver, wirelessly receiving said incoming wireless signalindirectly from said electronic device via a home automation unit andvia a cloud computing system, wherein said incoming wireless signal istransmitted wirelessly from said electronic device to said homeautomation unit, which in turn sends another, different, signal to saidcloud computing system, which in turn sends yet another, different,signal to said wireless receiver to trigger remote actuation of saidmotor unit of the electric window covering.

In some embodiments, the method further comprises: storing locally, in alocal storage unit, said partial data-set of rolling codes that areassociated with said motor unit; configuring a Rolling-Code Pointer topoint to a next-available rolling-code in said partial data-set ofrolling codes that is stored locally in said local storage unit;incrementing the Rolling-Code Pointer upon utilization of a rollingcode.

In some embodiments, said constructing comprises: dynamicallyconstructing said outgoing wireless signal which comprises: (i) a fixednon-hopping payload portion that is received one time from said remoteserver, and (ii) a next-available rolling-code that is obtained from alocal storage of partial data-set of rolling codes that was receivedfrom said remote server.

In some embodiments, said transmitting comprises: (I) transmitting saidoutgoing wireless signal to a wireless receiver of the motor unit of theelectric window covering over a first frequency obtained from a list ofcandidate frequencies, and also, (II) transmitting same said outgoingwireless signal. to the wireless receiver of the motor unit of theelectric window covering over a second, different, frequency obtainedfrom said list of candidate frequencies.

In some embodiments, wirelessly receiving the incoming wireless signalfrom the electronic device comprises: wirelessly receiving the incomingwireless signal from the electronic device which is a smartphone or atablet.

In some embodiments, the method constructs said outgoing wirelesssignal, without having access to a secret seed value that is accessibleto said motor unit of the electric window covering; by inserting intosaid outgoing wireless signal a particular rolling code that is obtainedfrom said partial data-set of rolling codes that is wirelessly receivedfrom said remote server.

In some embodiments, a system comprises: (a) a base unit comprising: awireless receiver, to wirelessly receive from an electronic device anincoming wireless signal indicating a command to actuate an electricwindow covering; a wireless signal constructor, to dynamically constructan outgoing wireless signal which comprises a rolling code; a wirelesstransmitter, to transmit said outgoing wireless signal to a wirelessreceiver of a motor unit that is operably associated with said electricwindow covering; (b) a remote server comprising: a storage unit, tostore a data-set of rolling codes; wherein each of said rolling codes,when included in a wireless signal, causes said motor unit to actuatesaid electric window covering; a transmitter to transmit to said baseunit at least one of: (i) a single rolling code from said data-set ofrolling codes, (ii) a partial subset of said data-set of rolling codes,(iii) an encrypted version of said single rolling code, (iv) anencrypted version of said partial subset of said data-set of rollingcodes. In some embodiments, the base unit further comprises a localstorage unit to store said partial subset of rolling codes; wherein thewireless signal constructor of the base unit is to dynamically constructsaid outgoing wireless signal by including in said outgoing wirelesssignal a next-available rolling code obtained from said local storageunit of the base unit. In some embodiments, said electronic device is asmartphone or a tablet.

The discussion above, with regard to cloning or duplicating orconstructing a signal for controlling a garage door, applies similarlywith regard to cloning or duplicating or constructing a signal forcontrolling such car entry system or vehicular entry system or key-basedentry system or key-less entry system or security system or othersystems mentioned above.

Some embodiments may similarly operate to enable remote control and/orwireless control and/or no-contact control of anelectrically-retractable/electrically-foldable awning or overhand orpatio-cover or pergola or pergola shade or canopy or canopy shade orextendible-roof-segment, orelectrically-retractable/electrically-foldable lateral arm awning, orelectrically-retractable/electrically-foldable folding-arm awning ordrop-arm awning, or electrically-retractable/electrically-foldable shadesails, or similar systems. The discussion above, with regard to cloningor duplicating or constructing a signal for controlling a garage door,applies similarly with regard to regard to cloning or duplicating orconstructing a signal for controlling suchelectrically-retractable/electrically-foldable awning or overhang orcovering elements or shading elements.

Some embodiments of the present invention may similarly be utilized inconjunction with other appliances, devices, electric devices, electronicdevices, or other systems which utilize Rolling Codes or Hopping Codes.For example, some embodiments may be used in conjunction with a car orvehicle or vessel or aircraft, which may be associated with a key or afob or a key fob or a fob key or a fob article or with a key-less entryarticle that utilizes rolling codes or hopping codes; or with an alarmsystem or security system or anti-theft system or protection system forsuch vehicle or vessel or aircraft; or with a vehicular (or marinevessel, or aircraft) ignition system that is associated with, oractuated by, such key or key-less ignition article; or with a key or akey-less entry article or a key-less access article that is capable oftransmitting a wireless signal that indicates a command to open a doorof such vehicle (or vessel, or aircraft) or of a non-vehicular structure(e.g., a house, a home, an office, a gate, a mobile home, a fence, orthe like). For example, in some embodiments, a system comprises: (a) abase unit comprising: a wireless receiver, to wirelessly receive from anelectronic device an incoming wireless signal indicating a command toactuate such key-less entry system or key-based entry system; a wirelesssignal constructor, to dynamically construct an outgoing wireless signalwhich comprises a rolling code; a wireless transmitter, to transmit saidoutgoing wireless signal to a wireless receiver of a motor unit (orother control unit) that is operably associated with said key-less entrysystem or key-based entry system; (b) a remote server comprising: astorage unit, to store a data-set of rolling codes; wherein each of saidrolling codes, when included in a wireless signal, causes said motorunit (or control unit) to actuate said key-less entry system orkey-based entry system; a transmitter to transmit to said base unit atleast one of: (i) a single rolling code from said data-set of rollingcodes, (ii) a partial subset of said data-set of rolling codes, (iii) anencrypted version of said single rolling code, (iv) an encrypted versionof said partial subset of said data-set of rolling codes. In someembodiments, the base unit further comprises a local storage unit tostore said partial subset of rolling codes; wherein the wireless signalconstructor of the base unit is to dynamically construct said outgoingwireless signal by including in said outgoing wireless signal anext-available rolling code obtained from said local storage unit of thebase unit. In some embodiments, said electronic device is a smartphoneor a tablet.

Functions, operations, components and/or features described herein withreference to one or more implementations, may be combined with, or maybe utilized in combination with, one or more other functions,operations, components and/or features described herein with referenceto one or more other implementations. Some embodiments may comprise anypossible or suitable combinations, re-arrangements, assembly,re-assembly, or other utilization of some or all of the modules orfunctions or components or units that are described herein, even if theyare discussed in different locations or different chapters of the abovediscussion, or even if they are shown across different drawings ormultiple drawings.

While certain features of some demonstrative embodiments have beenillustrated and described herein, various modifications, substitutions,changes, and equivalents may occur to those skilled in the art.Accordingly, the claims are intended to cover all such modifications,substitutions, changes, and equivalents.

What is claimed is:
 1. A method for remotely controlling a motor unit ofan electric window covering, the method comprising: at a wirelessreceiver, wirelessly receiving from an electronic device an incomingwireless signal indicating a command to actuate said electric windowcovering; at said wireless receiver, receiving, from a remote server, apartial data-set of rolling codes that are associated with said motorunit of said electric window covering; wherein the partial data-set ofrolling codes is only a partial subset of an entire dataset of rollingcodes that can actuate said motor unit of said electric window covering;at a wireless signal constructor unit, dynamically constructing anoutgoing wireless signal which comprises a rolling code from saidpartial data-set; at a wireless transmitter, transmitting said outgoingwireless signal to a wireless receiver of said motor unit that isoperably associated with said electric window covering; wherein themethod is performed by a system that comprises said electric windowcovering; wherein said electric window covering comprises a coveringselected from the group consisting of: electric window shades, electricwindow blinds, electric window curtain; wherein said electric windowcovering is mounted in proximity to a window that is selected from thegroup consisting of: a home window, an office window, a store window, ashop window, a vehicular window, a window of a vehicle, a window of avessel, a window of an aircraft, a window of a mobile home.
 2. Themethod of claim 1, wherein the receiving at said wireless receiver, fromsaid remote server, of said partial data-set of rolling codes, comprisesreceiving via a secure communication channel.
 3. The method of claim 1,wherein said constructing utilizes one rolling code of said partialdata-set of rolling codes, upon a user command to actuate the motor unitof the electric window covering.
 4. The method of claim 1, wherein saidconstructing comprises dynamically constructing said outgoing wirelesssignal without having access to a secret seed value that is accessibleto said motor unit.
 5. The method of claim 1, further comprising:locally storing, in a local storage unit, said partial data-set ofrolling codes that are associated with said motor unit.
 6. The method ofclaim 1, wherein said constructing comprises: dynamically constructingsaid outgoing wireless signal by including in said outgoing wirelesssignal a next-available rolling code obtained from a local storage unit.7. The method of claim 1, wherein said constructing and saidtransmitting are triggered based on said a direct manual input receivedfrom the user.
 8. The method of claim 1, further comprising: at apairing module, performing a wireless pairing process between (i) anapparatus comprising said wireless transmitter, and (ii) said motor unitof said electric window covering; wherein actuation of the pairingmodule triggers transmission of a wireless communication signal having arolling code, which enables said motor unit to pair with said apparatus.9. The method of claim 1, wherein wirelessly receiving at the wirelessreceiver said incoming wireless signal from the electronic devicecomprises: at said wireless receiver, wirelessly receiving said incomingwireless signal directly from said electronic device via a local Wi-Ficommunication network in which said wireless receiver and saidelectronic device participate.
 10. The method of claim 1, whereinwirelessly receiving at the wireless receiver said incoming wirelesssignal from the electronic device comprises: at said wireless receiver,wirelessly receiving said incoming wireless signal directly from saidelectronic device via a local Wi-Fi router which is in direct Wi-Ficommunication with each one of said electronic device and said wirelessreceiver.
 11. The method of claim 1, wherein wirelessly receiving at thewireless receiver said incoming wireless signal from the electronicdevice comprises: at said wireless receiver, wirelessly receiving saidincoming wireless signal indirectly from said electronic device via ahome automation unit; wherein said incoming wireless signal istransmitted wirelessly from said electronic device to said homeautomation unit, which in turn generates and sends a different wirelesssignal to said wireless receiver to trigger remote actuation of saidmotor unit of the electric window covering.
 12. The method of claim 1,wherein wirelessly receiving at the wireless receiver said incomingwireless signal from the electronic device comprises: at said wirelessreceiver, wirelessly receiving said incoming wireless signal indirectlyfrom said electronic device via a home automation unit and via a cloudcomputing system, wherein said incoming wireless signal is transmittedwirelessly from said electronic device to said home automation unit,which in turn sends another, different, signal to said cloud computingsystem, which in turn sends yet another, different, signal to saidwireless receiver to trigger remote actuation of said motor unit of theelectric window covering.
 13. The method of claim 1, further comprising:storing locally, in a local storage unit, said partial data-set ofrolling codes that are associated with said motor unit; configuring aRolling-Code Pointer to point to a next-available rolling-code in saidpartial data-set of rolling codes that is stored locally in said localstorage unit; incrementing the Rolling-Code Pointer upon utilization ofa rolling code.
 14. The method of claim 1, wherein said constructingcomprises: dynamically constructing said outgoing wireless signal whichcomprises: (i) a fixed non-hopping payload portion that is received onetime from said remote server, and (ii) a next-available rolling-codethat is obtained from a local storage of partial data-set of rollingcodes that was received from said remote server.
 15. The method of claim1, wherein said transmitting comprises: (I) transmitting said outgoingwireless signal to a wireless receiver of the motor unit of the electricwindow covering over a first frequency obtained from a list of candidatefrequencies, and also, (II) transmitting same said outgoing wirelesssignal to the wireless receiver of the motor unit of the electric windowcovering over a second, different, frequency obtained from said list ofcandidate frequencies.
 16. The method of claim 1, wherein wirelesslyreceiving the incoming wireless signal from the electronic devicecomprises: wirelessly receiving the incoming wireless signal from theelectronic device which is a smartphone or a tablet.
 17. The method ofclaim 1, wherein the method constructs said outgoing wireless signal,without having access to a secret seed value that is accessible to saidmotor unit of the electric window covering, by inserting into saidoutgoing wireless signal a particular rolling code that is obtained fromsaid partial data-set of rolling codes that is wirelessly received fromsaid remote server.
 18. A system comprising: (a) a base unit comprising:a wireless receiver, to wirelessly receive from an electronic device anincoming wireless signal indicating a command to actuate an electricwindow covering; a wireless signal constructor, to dynamically constructan outgoing wireless signal which comprises a rolling code; a wirelesstransmitter, to transmit said outgoing wireless signal to a wirelessreceiver of a motor unit that is operably associated with said electricwindow covering; (b) a remote server comprising: a storage unit, tostore a data-set of rolling codes; wherein each of said rolling codes,when included in a wireless signal, causes said motor unit to actuatesaid electric window covering; a transmitter to transmit to said baseunit at least one of: (i) a single rolling code from said data-set ofrolling codes, (ii) a partial subset of said data-set of rolling codes,(iii) an encrypted version of said single rolling code, (iv) anencrypted version of said partial subset of said data-set of rollingcodes; wherein the base unit is configured to control said electricwindow covering, which comprises a covering selected from the groupconsisting of: electric window shades, electric window blinds, electricwindow curtain; wherein said electric window covering is mounted inproximity to a window that is selected from the group consisting of: ahome window, an office window, a store window, a shop window, avehicular window, a window of a vehicle, a window of a vessel, a windowof an aircraft, a window of a mobile home.
 19. The system of claim 18,wherein the base unit further comprises a local storage unit to storesaid partial subset of rolling codes; wherein the wireless signalconstructor of the base unit is to dynamically construct said outgoingwireless signal by including in said outgoing wireless signal anext-available rolling code obtained from said local storage unit of thebase unit.
 20. The system of claim 18, wherein said electronic device isa smartphone or a tablet.